package com.devMode.Singleton;

/**
 * 单例模式 -- 懒汉模式
 */
public class LazyLoadSingleton {


    /**
     * 私有化构造方法
     */
    private LazyLoadSingleton(){

    }

    /**
     * 外部获取单例的方法
     * @return 本类的单例
     */
    public LazyLoadSingleton getLazyLoadSingelton(){
        return Singleton.getInstance();
    }

    /**
     * 通过JVM保证new 只会执行一次，并且是LazyLoad的方式，
     * 只有在使用到的时候，才会触发该类的初始化
     */
    private static class Singleton{
        private static LazyLoadSingleton instance;

        static{
            instance = new LazyLoadSingleton();
        }

        public static LazyLoadSingleton getInstance(){
            return Singleton.instance;
        }
    }
}
